1. Field of the Invention
The present invention relates generally to data processing systems and, more specifically, to object-oriented programming systems and processes.
2. Description of the Related Art
Software development requires writing source code comprising lines of computer programming written in a suitable programming language and assembling executable code generated from the source code into a software product that can be loaded into computer memory and executed. The step of assembling executable code is referred to as a software build process. As part of the software build process, source input comprising source code and control information is processed by a compiler or similar utility control program. The compiled or otherwise processed code comprises executable control program output data. The executable output data can then be loaded onto a system and accessed by system users so the underlying application can be used.
There are many situations for which it might be necessary to develop a new software product that must be built. Development of a new computer hardware system, for example, might require development of new software to run on it. The new software must be written and built. Modern software products can comprise thousands of programming sub-parts or modules and any one of those modules might be changed. For example, new features might be added to existing software products by adding a new module or changing an existing module. If any one of the constituent source parts of a software product is changed, then the entire software product likely will have to be rebuilt.
Many of the processing steps involved in the software build process are similar across different system platforms or installations. The primary steps involved in a software build include assembling all the modules that make up a software product, checking each module to determine if the module is out-of-date or for any other reason must be re-built, compiling or otherwise processing each of the modules that must be re-built, and assembling all the built and re-built modules into a complete, executable software product.
There presently is no structured build processor that is sufficiently flexible and adaptable to permit re-use across different system installations and platforms. For example, a software product that is built for use with a computer system from the International Business Machines Corporation (IBM Corporation) computer processor product called "AS/400" might have to be re-built for each different system configuration. Such building potentially involves a system administrator processing each one of several hundred software modules to assemble the executable code making up the software product. Similarly, if a new hardware system is developed, it might be necessary to re-build a software product on the new hardware, even if previously existing source code can be used. This wastes resources. It would be advantageous if a software build processor could carry out the software build process for multiple versions of a software product, automatically detecting the portions of the software product that require building and then building only those portions. In this way, the amount of processing necessary for carrying out a software build would be reduced.
From the discussion above, it should be apparent that there is a need for a software build system that provides more automatic building of software products and re-use of built software. The present invention satisfies this need.